package com.tsystems.services;

import com.tsystems.dao.EmployeeDAO;
import com.tsystems.entities.Employee;

/**
 * 
 * @author vlad
 * 
 * Класс, который отвечает за все сервисы, относящиеся к служащими. 
 */
public class EmployeeServices {

	private static EmployeeServices instance;

	public static synchronized EmployeeServices getInstance() {
		if (instance == null) {
			instance = new EmployeeServices();
		}
		return instance;
	}

	private EmployeeServices() {

	}

	/**
	 * Метод ищет по логину служащего и проверяет совпадение пароля. Если
	 * пользователь найден и пароль совпал, то вход в систему выполнен успешно.
	 * 
	 * @param login
	 *            - имя пользователя служащего
	 * 
	 * @param password
	 *            - пароль
	 * 
	 * @return "Вход в систему успешно выполнен" - если служащий с таким логином найден и его пароль совпал,
	 *         иначе -"Неверный пароль или имя пользователя!".
	 */
	public String loginEmployee(String login, String password) {
		EmployeeDAO employeeDAO = new EmployeeDAO();
		Employee employee = employeeDAO.getEmployee(login);
		if(employee != null && employee.getPassword().equals(password))
			return "Вход в систему успешно выполнен";
		return  "Неверный пароль или имя пользователя!";
	}

	/**
	 * Регистрирует служащего, если служащий с таким паролем еще не
	 * зарегистрирован.
	 * 
	 * @param employee
	 *            - служащий, которого необходимо зарегистрировать.
	 * 
	 * @return "Поздравляем! Регистрация прошла успешно!" - если регистрация
	 *         прошла успешно, иначе "Такой пользователь уже существует."
	 */
	public String registerEmployee(Employee employee) {
		EmployeeDAO employeeDAO = new EmployeeDAO();
		Employee employeeFound = employeeDAO.getEmployee(employee.getLogin());

		if (employeeFound != null) {
			return "Такой пользователь уже существует.";
		}

		employeeDAO.insert(employee);
		return "Поздравляем! Регистрация прошла успешно!";
	}

}
